package com.skivingcloud.report.datas.service;

import com.skivingcloud.admin.sys.entity.User;
import com.skivingcloud.common.utils.PageUtils;
import com.skivingcloud.report.bigscreen.entity.ChartDto;
import com.skivingcloud.report.datas.entity.OriginalDataDto;
import com.skivingcloud.report.datas.entity.ReportDataset;

import java.util.List;
import java.util.Map;

import com.baomidou.mybatisplus.extension.service.IService;

/**
 * <p>
 * 数据集管理 服务类
 * </p>
 *
 * @author skivingcloud
 * @since 2022-07-20
 */
public interface IReportDatasetService extends IService<ReportDataset> {

	/**
	 * 获取数据集
	 * @param dto
	 * @return
	 * @throws Exception
	 */
	OriginalDataDto getDatasetOriginal(ChartDto dto) throws Exception;

	/**
     * 单条详情
     *
     * @param setCode
     * @return
     */
	ReportDataset detailSet(String setCode);

	/**
	 * 分页查询
	 * @param params
	 * @return
	 */
	PageUtils queryPage(Map<String, Object> params);

	/**
	 * 数据预览
	 * @param dataSet
	 * @return
	 * @throws Exception
	 */
	OriginalDataDto testTransform(ReportDataset dataSet) throws Exception;

	/**
	 * 新增数据集
	 * @param dataSet
	 * @param user
	 */
	void add(ReportDataset dataSet, User user);

	/**
	 * 修改数据集
	 * @param dataSet
	 * @param user
	 */
	void update(ReportDataset dataSet, User user);

	/**
	 * 根据主键查询
	 * @param id
	 * @return
	 */
	ReportDataset selectById(String id);

	/**
	 * 数据预览
	 * @param id
	 * @return
	 * @throws Exception
	 */
	OriginalDataDto testTransformBySetId(String id) throws Exception;

	List<ReportDataset> queryAllDataSet();

	ReportDataset detailBysetId(String id);
}
